package net.molchat.android.core;


import net.molchat.android.cont.ContMan;
import net.molchat.android.dbase.DbMan;
import net.molchat.android.joint.IOMan;
import net.molchat.android.media.ResMan;
import net.molchat.android.mess.MessPars;
import net.molchat.android.scrn.ScrMan;
import net.molchat.android.scrn.theme.ThemeMan;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class Main extends Activity implements Runnable {

@Override
protected void onCreate(Bundle savedInstanceState) {

	super.onCreate(savedInstanceState);

	Log.v("MainActivity.onCreate", "= = = Application started = = =");

	this.init();
}


//=============================================================== Initialization
public void init() {

	// Copied from 'start' method

	Man.dbMan = new DbMan();
	Setting.loadCore();
	ThemeMan.init();

	Man.scrMan = new ScrMan(this);
	setContentView(Man.scrMan);

	new Thread(this).start();
}


//========================================================================= exit
public void exit(int from) {

	// TODO stop all threads and exit application correctly
	System.exit(0);
}


//========================================================================== run
@Override
public void run() {

	Log.v("Main.run", "Initialization thead started");

	Man.scrMan.bringToFront();

	Man.scrMan.createSplash();

	Man.scrMan.splashNext("Загрузка настроек", 0);
	Setting.loadMain();
	Clock.init();

	Man.scrMan.splashNext("Загрузка контактов", 0);
	Man.contMan = new ContMan();
	Man.contMan.listLoad();

	//	Man.scrMan.splashNext("Р Р°СЃС‡РµС‚ РєРѕРЅС‚СЂРѕР»СЊРЅС‹С… СЃСѓРјРј", 0);
	//	Mat.crcTableMake(); // РЎРѕР·РґР°РЅРёРµ С‚Р°Р±Р»РёС†С‹ РґР»СЏ Р±С‹СЃС‚СЂРѕРіРѕ РІС‹С‡РёСЃР»РµРЅРёСЏ CRC

	//Man.picAni = new PicAni();

	Man.scrMan.splashNext("Менеджер ресурсов", 0);
	Man.resMan = new ResMan();
	Man.resMan.init(getResources());

	Man.scrMan.splashNext("Парсер сообщений", 0);
	Man.par = new MessPars();

	//	Man.scrMan.splashNext("Р—РІСѓРє", 0);
	//	Man.soundMan = new SoundMan();
	//	Man.soundMan.init();

	//	Man.scrSmile = new ScrSmile();

	//	Man.scrMan.splashNext("РЎРѕР·РґР°РЅРёРµ СЌРєСЂР°РЅРѕРІ", 0);

	if (Man.scrMan.waitShown(Setting.waitShown)) {

		if (Setting.login == null) {
			Man.scrMan.splashNext("Ввод логина и пароля", 0);
			//			Man.scrMan.showNew();
		} else {
			Man.scrMan.splashNext("Подключаемся к серверу", 100);
			Man.ioMan = new IOMan();
			Man.ioMan.connect();
		}
	} else {
		exit(Mess.LOCAL);
	}


}


}


// FIXME
//package net.molchat.android.core;
//
//
//import javax.microedition.midlet.*;
//import javax.microedition.lcdui.*;
//
//
//// ============================================================= РЎС‚Р°СЂС‚РѕРІС‹Р№ РєР»Р°СЃСЃ
//public final class Molchat extends MIDlet {
//
//private boolean fFirst = true;
//
//
////====================================================== РќР°С‡Р°Р»СЊРЅР°СЏ РёРЅРёС†РёР°Р»РёР·Р°С†РёСЏ
//public Molchat() {
//
//	Log.v("Molchat.init", "=====");
//}
//
//
////========================================== РќР°С‡Р°Р»СЊРЅР°СЏ РёРЅРёС†РёР°Р»РёР·Р°С†РёСЏ, РїРµСЂРµР·Р°РїСѓСЃРє
//public void startApp() {
//
//	try {
//		if (fFirst) {
//			Man.molchat = this;
//			Man.main = new Main();
//			Man.main.start(this, Display.getDisplay(this));
//			fFirst = false;
//
//			Log.v("Molchat.startApp",
//					"Р—Р°РіСЂСѓР·РёР»РёСЃСЊ Р·Р° " + (System.currentTimeMillis() - Main.startTime)
//							+ " РјСЃ");
//
//		}
//	} catch (Exception e) {
//		Log.e("Molchat.startApp", "РљРѕСЂСЂРµРєС‚РЅС‹Р№ Р·Р°РїСѓСЃРє РїСЂРёР»РѕР¶РµРЅРёСЏ РЅРµ СѓРґР°Р»СЃСЏ", e);
//		Alert alert = new Alert(
//				"РњРѕР»Р§Р°С‚",
//				"РљРѕСЂСЂРµРєС‚РЅС‹Р№ Р·Р°РїСѓСЃРє РїСЂРёР»РѕР¶РµРЅРёСЏ РЅРµ СѓРґР°Р»СЃСЏ. РџРѕР¶Р°Р»СѓР№СЃС‚Р°, СЃРѕРѕР±С‰РёС‚Рµ СЂР°Р·СЂР°Р±РѕС‚С‡РёРєР°Рј РѕР± РѕС€РёР±РєРµ! РљРѕРѕСЂРґРёРЅР°С‚С‹ РґР»СЏ СЃРІСЏР·Рё РЅР° СЃР°Р№С‚Рµ MOLCHAT.NET",
//				null, AlertType.INFO);
//		alert.setTimeout(Alert.FOREVER);
//		//		alert.addCommand(Alert.DISMISS_COMMAND);
//		alert.addCommand(new Command("OK", Command.OK, 1));
//		Display.getDisplay(this).setCurrent(alert);
//		try {
//			Thread.sleep(10000);
//		} catch (Exception ex) {}
//		destroyApp(true);
//	}
//}
//
//
////======================================================================== РџР°СѓР·Р°
//public void pauseApp() {
//
//	Log.v("Molchat.pauseApp", "PAUSE STATE");
//	System.gc();
//}
//
//
////======================================================================== Р’С‹С…РѕРґ
//public void destroyApp(boolean fUnconditional) {
//
//	fFirst = true;
//	notifyDestroyed();
//	Log.v("Molchat.destroyApp", "Р—Р°РІРµСЂС€РµРЅРёРµ СЂР°Р±РѕС‚С‹");
//}
//
//
////====================================================================== РЎРћР‘Р«РўР�РЇ
////======================================================================== Р’С‹С…РѕРґ
//public void exit() {
//
//	destroyApp(false);
//}
//
//}


// FIXME
// Main.java
//package net.molchat.android.core;
//
//
//import javax.microedition.lcdui.Display;
//
//import net.molchat.android.cont.ContMan;
//import net.molchat.android.dbase.DbMan;
//import net.molchat.android.joint.IOMan;
//import net.molchat.android.media.ResMan;
//import net.molchat.android.media.SoundMan;
//import net.molchat.android.mess.MessPars;
//import net.molchat.android.scrn.ScrMan;
//import net.molchat.android.scrn.ScrSmile;
//import net.molchat.android.scrn.theme.ThemeMan;
//
//
//
//// ================================================== РћСЃРЅРѕРІРЅС‹Рµ С„СѓРЅРєС†РёРё РѕР±СЂР°Р±РѕС‚РєРё
//public final class Main {
//
//// ======================================================= Р“Р»РѕР±Р°Р»СЊРЅС‹Рµ РїРµСЂРµРјРµРЅРЅС‹Рµ
//
//// Р Р°Р·РЅРѕРµ
//public static long startTime = System.currentTimeMillis();
//public static final String SERVER_NAME = "РЎРµСЂРІРµСЂ"; // РќР°Р·РІР°РЅРёРµ СЃРµСЂРІРµСЂР°
//
//
//// =============================================================== Р�РЅРёС†РёР°Р»РёР·Р°С†РёСЏ
//public Main() {
//
//}
//
//// ======================================================================= Р’С‹С…РѕРґ
//public void exit(int from) {
//
//	Man.ioMan.exit(true, Mess.FROM_UP);
//	Man.contMan.exit();
//	Man.soundMan.exit();
//
//	if (from >= Mess.LOCAL) {
//		Man.scrMan.exit(Mess.FROM_UP);
//	}
//
//	Man.dbMan.exit();
//	Man.molchat.exit();
//	Man.exit();
//}
//
//
//// ===================================================================== РЎРћР‘Р«РўР�РЇ
//// ================================================================= РЎРѕРµРґРёРЅРёС‚СЊСЃСЏ
//public void connect() {
//
//	Man.contMan.clearAll(); // Р’РѕР·РјРѕР¶РЅРѕ, РЅРµС‚ РЅРµРѕР±С…РѕРґРёРјРѕСЃС‚Рё РѕР±РЅСѓР»СЏС‚СЊ СЃРїРёСЃРѕРє РєРѕРЅС‚Р°РєС‚РѕРІ
//	Man.ioMan.connect();
//	Man.scrMan.showMain();
//
//}
//
//
//// ====================================================== Р�РЅРёС†РёР°Р»РёР·Р°С†РёСЏ Рё Р·Р°РїСѓСЃРє
//public void start(Molchat molchat, Display disp) {
//
//	Man.molchat = molchat;
//	Man.dbMan = new DbMan();
//
//	Setting.loadCore();
//
//	ThemeMan.init();
//
//	Man.scrMan = new ScrMan();
//	Man.scrMan.init(disp);
//	Man.scrMan.showSplash();
//	Man.scrMan.splashNext("РќР°СЃС‚СЂРѕР№РєРё", 0);
//	Setting.loadMain();
//	Clock.init();
//
//	Man.scrMan.splashNext("РљРѕРЅС‚Р°РєС‚С‹", 0);
//	Man.contMan = new ContMan();
//	Man.contMan.listLoad();
//
//	Man.scrMan.splashNext("Р Р°СЃС‡РµС‚ РєРѕРЅС‚СЂРѕР»СЊРЅС‹С… СЃСѓРјРј", 0);
//	Mat.crcTableMake(); // РЎРѕР·РґР°РЅРёРµ С‚Р°Р±Р»РёС†С‹ РґР»СЏ Р±С‹СЃС‚СЂРѕРіРѕ РІС‹С‡РёСЃР»РµРЅРёСЏ CRC
//
//	Man.scrMan.splashNext("РЎРµС‚СЊ", 0);
//	Man.ioMan = new IOMan();
//	Man.par = new MessPars();
//
//	Man.scrMan.splashNext("Р—РІСѓРє", 0);
//	Man.soundMan = new SoundMan();
//	Man.soundMan.init();
//
//	Man.scrMan.splashNext("РЎРјР°Р№Р»С‹", 0);
//	Man.resMan = new ResMan();
//	Man.scrSmile = new ScrSmile();
//
//	Man.scrMan.splashNext("РЎРѕР·РґР°РЅРёРµ СЌРєСЂР°РЅРѕРІ", 0);
//
//	if (Setting.login == null) {
//		Man.scrMan.showNew();
//	} else {
//		Man.scrMan.splashNext("РЎРѕРµРґРёРЅРµРЅРёРµ", 100);
//		Man.ioMan.connect();
//		Man.scrMan.showMain();
//	}
//
//}


//}